sub infix:<+>
1 | class Range |
1.1 | (Range) sub infix:<+> |
2 | class Date |
2.1 | (Date) sub infix:<+> |
3 | class DateTime |
3.1 | (DateTime) sub infix:<+> |
Documentation for sub infix:<+>
assembled from the following types:
class Range
From Range
(Range) sub infix:<+>
multi sub infix:<+>(Range \r, Real \v)multi sub infix:<+>(Real \v, Range \r)
Takes an Real
and adds that number to both boundaries of the Range object. Be careful with the use of parenthesis.
say (1..2) + 2; # OUTPUT: «3..4»say 1..2 + 2; # OUTPUT: «1..4»
class Date
From Date
(Date) sub infix:<+>
multi sub infix:<+> (Date, Int --> Date)multi sub infix:<+> (Int, Date --> Date)
Takes an Int
and adds that many days to the given Date
object.
say Date.new('2015-12-25') + 332; # OUTPUT: «2016-11-21»say 1 + Date.new('2015-12-25'); # OUTPUT: «2015-12-26»
class DateTime
From DateTime
(DateTime) sub infix:<+>
multi sub infix:<+> (DateTime, Duration --> DateTime)multi sub infix:<+> (Duration, DateTime --> DateTime)
Takes a DateTime
and increases it by the given Duration
, preserving the time zone.
say DateTime.new(:2015year) + Duration.new(31536001.0);# OUTPUT: «2016-01-01T00:00:00Z»say Duration.new(42) + DateTime.new(:2015year, :3600timezone);# OUTPUT: «2015-01-01T00:00:42+01:00»